معرفی ترفندهای کاربردی php

معرفی ترفندهای کاربردی php

۱- از برگه تقلب برای SQL Injection استفاده کنید


هر توسعه دهنده وب باید به خوبی با شیوه های امنیتی آشنا باشد و باید برنامه ها را با این شیوه های امنیتی درون ذهنش طراحی کند. قانون اولیه این است که هرگز به داده های دریافت شده از جای دیگر اعتماد نکنید. قانون دیگر اسکیپ (escape) داده ها قبل از ارسال به جای دیگری است. ترکیب این دو قانون برای ایجاد اصول امنیتی پایه می تواند بدین صورت ساده شوند: فیلتر ورودی، اسکیپ خروجی (FIEO).


۲- تفاوت بین عملگرهای مقایسه ای را بشناسید


این نکته خوبی است اما مثال عملی برای آن وجود ندارد تا نشان دهد چه زمانی یک مقایسه غیر دقیق می تواند مشکلاتی ایجاد کند.اگر ازتابع ()strpos برای تعیین وجود یک زیر رشته در یک رشته استفاده می کنید نتایج می تواند گمراه کننده باشد: (تابع ()strpos در صورت عدم یافتن زیر رشته مقدار FALSE برمی گرداند)


۳- میانبر Else


این نکته را می توان در یک تمرین مفید به طور اتفاقی کشف کرد. بدین صورت که همیشه قبل از استفاده از متغیرها آنهارا مقداردهی اولیه کنید. عبارت شرطی را در نظر بگیرید که تعیین می کند که آیا کاربر بر اساس نام کاربری اش admin است.


۴- براکت ها را حذف کنید


منظور از “براکت ها” همان “آکولادها” هستند نه “براکت های مربعی”.این نکته را باید بی هیچ قید و شرطی نادیده بگیرید. زیرا بدون آکولادها، خوانایی و تفکیک پذیری کد آسیب می بیند. 


۵- به ()Str_replace بیشتر از ()Ereg_replace و ()Preg_replace توجه کنید


تیتر این نکته برداشت اشتباهی را نشان می دهد و منجر به همان کاربرد غلطی می شود که سعی در جلوگیری از آن دارید. این حقیقت واضحی است که توابع رشته ای در تطابق رشته سریعتر از توابع عبارت های منظم هستند:اگر از عبارت های منظم استفاده می کنید، ()ereg_replace و ()preg_replace خیلی سریع تر از ()str_replace هستند.از آنجا که ()str_replace از تطبیق الگو پشتیبانی نمی کند، این تابع بی معنی است. انتخاب بین توابع رشته ای و توابع عبارت های منظم بستگی به این دارد که برای هدف مناسب باشند نه برای سرعت بیشتر. اگر نیاز به تطبیق الگو دارید از تابع عبارت های منظم استفاده کنید و اگر نیاز به تطبیق یک رشته دارید از یک تابع رشته ای استفاده کنید.


۷- Memcached


دسترسی به دیسک و دسترسی به شبکه کند است و معمولا بانک اطلاعاتی از هر دو استفاده می کند.


حافظه سریع است و می توان با استفاده از یک حافظه پنهان محلی از سرریز شدن شبکه و دسترسی به دیسک جلوگیری شود. این حقایق گفته شده را با هم تلفیق کنید تا متوجه مفهوم Memcached (مِمکَشد) شوید، ممکشد یک”سیستم حافظه ذخیره موقت شی در سرورهای توزیع شده” است که در ابتدا برای پلتفرم وبلاگ نویسی LiveJournal مبتنی بر Perl ساخته شده بود. برای انجام عملیات کش روی سرورهای وب سایت ها استفاده می شود.


اگر برنامه تان روی سرورهای مختلف توزیع نشده، احتمالاً نیازی به Memcached ندارید. روش های ساده تر ذخیره سازی – برای مثال سریال کردن داده ها و ذخیره آن در فایل موقت – می توانند کارهای اضافی زیادی را در هر درخواست حذف کنند. در واقع زمانیکه به مشتریان در تنظیم برنامه هایشان کمک می کنیم، این سیستم می تواند دسترسی آسان به سرورها را فراهم کند.


۸- از عملگر @ به کنترل به درستی استفاده کنید


همیشه سعی کنید از کاربرد عملگر توقیف خطا خودداری کنید. اگر می خواهید کدی بنویسید که در ذهن کارایی داشته باشد، عملگر @ نسبتاً کند است و می تواند هزینه بر باشد.


توقیف خطا کند است. به این دلیل که PHP به صورت پویا قبل از اجرای عبارت توقیف، گزارش خطا را به ۰ تغییر می دهد و سپس بلافاصله این تغییر را برمیگرداند و این هزینه بر است.


بدتر از همه اینکه استفاده از عملگر توقیف خطا، ردیابی علت اصلی خطا را دشوار می کند. مثال زیر خطایی را نشان می دهد که در آن متغیر albert$ به روش ارجاع تخصیص داده شده در حالیکه معلوم نیست آیا متغیر albus$ مقداردهی شده یا نه.

نویسنده بلاگ: صالح کریمی

صالح کریمی

دیدگاه کاربران

  • محمد عبادی پور

    20 فروردین، 1401

    نکات امنیتی خوبیه حتما استفاده میکنم

ثبت دیدگاه

برای ثبت نظر، ابتدا وارد شوید.

خدمات منتورینگ

شما در طول دوره ی آنلاین میتوانید یک پشتیبان یا همراه داشته باشید و تمامی تمرین ها و مشکلات خودتون رو با اپراتور های ما در میان میگذارید! چی بهتر از اینکه قدم به قدم در کنار اساتید و آموزش های آنلاین بتونی از طریق پشتیبان هم ارزیابی بشی و مشکلاتت رو توی کمترین زمان ممکن حل کنی؟!!